<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
async_test(function(t) {
    window.onload = t.step_func(function() {
        var textfield = document.getElementById('textfield');
        textfield.addEventListener('focus', setSelectionRange);
        textfield.setSelectionRange(0, 1);

        if (!window.eventSender) {
            t.done();
            return;
        }

        eventSender.mouseMoveTo(textfield.offsetLeft + textfield.offsetWidth - 4, textfield.offsetTop + 4);
        eventSender.mouseDown();
        eventSender.mouseUp();
        assert_equals(textfield.selectionStart, 0);
        assert_equals(textfield.selectionEnd, 5);

        eventSender.leapForward(1000);
        eventSender.mouseMoveTo(textfield.offsetLeft + textfield.offsetWidth - 4, textfield.offsetTop + 4);
        eventSender.mouseDown();
        eventSender.mouseUp();

        assert_not_equals(textfield.selectionStart, 0);
        assert_not_equals(textfield.selectionEnd, 0);

        t.done();
    });

    function setSelectionRange(e) {
        var textfield = document.getElementById('textfield');
        textfield.setSelectionRange(0, 5);
    }
}, "This tests the selection of the text field when mouse event occurs out of range.");
</script>
<input type="text" value="This text field is for the selection test" id="textfield"></input>